#!/bin/sh
# 需要变更变量 DOCKER_REPOSITORY DOCKER_TAG IMAGE_NAME JDK_TAR JDK_PACKAGE 以下值以 Kylin-V10-SP2-X86为例
# 镜像仓库
DOCKER_REPOSITORY="bessystem/appserver"
# 镜像标签
DOCKER_TAG="9.5.5.009-kylinv10sp2-x86"
# 导出的镜像文件名称
IMAGE_NAME="bes9.5.5-standalone-7266-patch009.t001-kylin-sp2-x86-jdk8.tar"


# 对应操作系统的jdk解压之前的包
JDK_TAR="OpenJDK8U-jdk_x64_linux_hotspot_8u312b07.tar.gz"
# 加压后的jdk包名
JDK_PACKAGE="jdk8u312-b07"


## 给实例打补丁
## 临时解压实例的包名
archive=BES-AppServer-Standard-9.5.5.7266
## 打完补丁后的实例包重命名 可以自行标记修改（BES9.5.5.7266：实例版本，009.T001：补丁版本）
archive_patch=BES9.5.5.7266.009.T001

mkdir ${archive}; tar -zxf ${archive}.tar.gz -C ${archive}
tar -zxf ${JDK_TAR}
export JAVA_HOME=`pwd`/${JDK_PACKAGE}; echo ${JAVA_HOME}
${archive}/bin/patch -path patch/
rm -rf ${archive}/patch/patch.log ${archive}/patch/backup/
cd ${archive}; tar -zcf ${archive_patch}.tar.gz *; mv ${archive_patch}.tar.gz ../
cd ..
rm -rf ${archive} ${JDK_PACKAGE}


# 删除原有镜像，并根据Dockerfile重新生成镜像
docker rmi ${DOCKER_REPOSITORY}:${DOCKER_TAG}
docker build --force-rm=true --no-cache=true -t ${DOCKER_REPOSITORY}:${DOCKER_TAG}  -f Dockerfile ./

# 导出并保存并镜像
docker save -o ${IMAGE_NAME} ${DOCKER_REPOSITORY}:${DOCKER_TAG}
gzip ${IMAGE_NAME}


